home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-02-20 | 2.2 KB | 88 lines | [AMAS/AMAP] |
- // -* PressBehavior.js *-
- //
- // Name: Press behavior
- // Description:
- // Author:
- // Version: $Id: PressBehavior.js,v 1.6 2000/12/21 15:03:30 consumer Exp $
- //
- var gDataTable = new Array(1);
-
- function PressBehaviorInit(solidName, axis, stiffness, damping)
- {
- // Make a new solid for attaching the cylindrical link and the spring
- var handleId = TSMakeUniqID("PressAttach_" + solidName);
- gDataTable[solidName] = handleId;
-
- TSMakeSolid(handleId, '1', TSSolidGetPosition(solidName));
-
- var springId = TSMakeUniqID("SpringForce_" + solidName)
-
- TSMakeSpringForce(springId,
- stiffness,
- damping,
- '0 0 0',
- solidName);
-
- var linkId = TSMakeUniqID("CylindricalLink_" + solidName);
-
- var position = TSGetAttribute(solidName,'position');
- TSMakeCylindricalLink(linkId,axis,position,solidName);
-
- // Build the hierarchy
- TSAppendChild(handleId, linkId);
- TSAppendChild(handleId, springId);
- TSAppendChild(TSGetSceneId(), handleId);
- TSUpdateNode(handleId);
-
- // Free the solid
- TSUpdateNodeAttribute(solidName, 'fixed', '0');
- }
-
- function PressBehaviorKill(solidName)
- {
- }
-
- function PressBehaviorStart(solidName, direction, intensity)
- {
- var position = TSSolidGetPosition(solidName);
- var dampingId = TSMakeUniqID("DampingForce_" + solidName);
- var shootId = TSMakeUniqID("ShootForce_" + solidName);
-
- TSMakeDampingSolidForce(dampingId, 0.5, 0.5)
- TSAppendChild(solidName, dampingId);
-
- direction = TSMakeStringFromPoint(TSPointNegate(TSMakePointFromString(direction)));
-
- TSMakeShootForce(shootId, direction, intensity, TSMakeStringFromPoint(position));
- TSAppendChild(solidName, shootId);
- TSUpdateNode(shootId);
- TSRemoveNode(shootId);
- TSRemoveNode(dampingId);
- }
-
- function PressBehaviorStop(solidName)
- {
- }
-
- //
- // Event functions
- //
-
- function PressBehaviorStartEvent(obj, event)
- {
- var axis = TSGetExtraParam(event, 'axis');
- var intensity = TSGetExtraParam(event, 'intensity');
- var stiffness = TSGetExtraParam(event, 'stiffness');
- var damping = TSGetExtraParam(event, 'damping');
-
- if (gDataTable[obj] == null) {
- PressBehaviorInit(obj, axis, stiffness, damping);
- }
-
- PressBehaviorStart(obj, axis, intensity);
- }
-
- function PressBehaviorStopEvent(obj, event)
- {
- }
-